<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>function对象</title>
		<script>
			/*
			 * Function:函数（方法）对象
			 * 		1、创建
			 * 			1.var fun = new Function(形式参数列表，方法体);//忘掉
			 * 			2.function方法名称（形式参数列表）{方法体}
			 * 			3.var 方法名 = function（形式参数列表）{方法体}
			 * 			4.在方法声明中有一个内置对象（数组）,arguments,封装所有的实际参数
			 * 		2、方法：
			 * 
			 * 		3、属性:
			 * 			length:形参的个数
			 * 		4、特点:
			 * 			1.方法定义时，形参的类型不用写，返回值类型也不写
			 * 			2.方法是一个对象，如果定义名称相同的方法，后面会覆盖前面
			 * 			3.在js中，方法的调用只与方法的名称有关，和参数列表无关
			 * 		5、调用:
			 */
			//1.创建方法1
			var fun1 = new Function("a","b","alert(a)");
			//调用方法
			//fun1(10,20);
			//alert(fun1.length);//length属性为函数的参数个数
			
			//2.创建方法2
			function fun2(a,b){
				alert(a+b);
			}
			//fun2(3,4);
			//alert(fun2.length);
			
			//3.创建方法3
			var fun3 = function(a,b){
				alert(a+b);
			}
			//方法覆盖
			fun3 = function(a,b){
				alert(a-b)
			}
			//fun3(3,4);
			
			fun2 =function(a,b){
				alert(a);
				alert(b);
			}
			//调用方法
			//fun2(3,4);
			//fun2(1);
			//fun2();
			//fun2(1,2,3);
			
			/*
			 * 求两个数的和
			 */
			/*function add(a,b){
				return a + b;
			}
			
			var sum = add(3,4);
			alert(sum);*/
			
			/*
			 * 求任意个数的和
			 */
			function add(){
				var sum = 0;
				for (var i = 0;i<arguments.length;i++) {
					sum+=arguments[i];
				}
				return sum;
			}
			var sum = add(4,5,6);
			alert(sum);
			
			
			
		</script>
	</head>
	<body>
	</body>
</html>
